package com.daiqee.vo;

import com.daiqee.enums.RequestType;

/**
 * <p>GET: 	         成功: 200,失败: 404,服务器: 500</p>
 * <p>PUT: 	         成功: 200,失败: 400,服务器: 500</p>
 * <p>POST:    成功: 201,失败: 400,服务器: 500</p>
 * <p>DELETE:  成功: 200,失败: 400,服务器: 500</p>
 * 
 * @since JDK 1.8
 * @version  V2.4.1
 * @author RichardTang 
 * @date: 2018年6月23日
 * @package com.daiqee.vo
 * @copyright:Copyright (c) 2018, 1245811923@qq.com All Rights Reserved.
 */
public class RestFulResultVO{
	
	private Object result; //需要返回的数据对象
	
	private RequestType type = RequestType.GET; //请求的类型
	
	/**
	 * 不带参数返回,默认为Void类型
	 */
	public RestFulResultVO(){
		result = Void.TYPE;
		this.type = RequestType.GET;
	}
	
	/**
	 * 默认构造的时候为GET类型请求
	 */
	public RestFulResultVO(Object result){
		this.result = result;
		this.type = RequestType.GET;
	}
	
	/**
	 * 执行成功,但是没有需要返回的参数,默认就给Void类型
	 * @param type
	 * 			请求的类型
	 */
	public RestFulResultVO response(RequestType type) {
		this.result = Void.TYPE;
		this.type = type;
		return this;
	}
	
	/**
	 * 执行成功,需要携带返回参数
	 * @param result
	 * 			参数实体
	 * @param type
	 * 			请求类型
	 * @return
	 */
	public RestFulResultVO response(Object result,RequestType type) {
		this.result = result;
		this.type = type;
		return this;
	}

	public Object getResult() {
		return result;
	}

	public void setResult(Object result) {
		this.result = result;
	}

	public RequestType getType() {
		return type;
	}

	public void setType(RequestType type) {
		this.type = type;
	}
	
}
